home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / DVIM72-M / GET_PGTA.C < prev    next >
Text File  |  1990-04-14  |  2KB  |  58 lines

  1. /**********************************************************************/
  2. /****************************** getpgtab ******************************/
  3. /**********************************************************************/
  4. #include "dvihead.h"
  5. #include "commands.h"
  6. #include "gendefs.h"
  7. #include "gblprocs.h"
  8. #include "egblvars.h"
  9. #include "m72.h"
  10.  
  11. void
  12. getpgtab(lastpageptr)
  13. long lastpageptr;
  14.  
  15. {
  16.     register long p;
  17.     register INT16 i,k;
  18.  
  19.     (void) FSEEK (dvifp,lastpageptr,0);
  20.     p = lastpageptr;
  21.  
  22.     for (k = 0; (p != (-1)) && (k < MAXPAGE); ++k)
  23.     {
  24.         page_ptr[MAXPAGE-1-k] = p;
  25.         (void) FSEEK (dvifp,(long) p, 0);
  26.  
  27.         if ((BYTE)nosignex(dvifp,(BYTE)1) != BOP)
  28.             (void)fatal(
  29.         "getpgtab():  Invalid BOP (beginning-of-page) back chain");
  30.  
  31.         for (i = 0; i <= 9; ++i)
  32.             (void) nosignex(dvifp,(BYTE)4);   /* discard count0..count9 */
  33.         p = (long)signex(dvifp,(BYTE)4);
  34.     }
  35.     page_count = k;
  36.     if (k >= MAXPAGE)
  37.         (void)warning("getpgtab():  Page table full...rebuild driver with \
  38. larger MAXPAGE");
  39.     else    /* move pointer table to front of array */
  40.         for (k = 0; k < page_count; ++k)
  41.         page_ptr[k] = page_ptr[MAXPAGE-page_count+k];
  42. }
  43.  
  44. /**********************************************************************/
  45. /****************************** getbytes ******************************/
  46. /**********************************************************************/
  47.  
  48. void
  49. getbytes(fp, cp, n)    /* get n bytes from file fp */
  50. register FILE *fp;    /* file pointer     */
  51. register char *cp;    /* character pointer */
  52. register BYTE n;    /* number of bytes */
  53.  
  54. {
  55.     while (n--)
  56.     *cp++ = (char)getc(fp);
  57. }
  58.